home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ssssttttrrrriiiicccctttt((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) ssssttttrrrriiiicccctttt((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- strict - Perl pragma to restrict unsafe constructs
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use strict;
-
- use strict "vars";
- use strict "refs";
- use strict "subs";
-
- use strict;
- no strict "vars";
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- If no import list is supplied, all possible restrictions are
- assumed. (This is the safest mode to operate in, but is
- sometimes too strict for casual programming.) Currently,
- there are three possible things to be strict about: "subs",
- "vars", and "refs".
-
- strict refs
- This generates a runtime error if you use symbolic
- references (see the _p_e_r_l_r_e_f manpage).
-
- use strict 'refs';
- $ref = \$foo;
- print $$ref; # ok
- $ref = "foo";
- print $$ref; # runtime error; normally ok
-
-
- strict vars
- This generates a compile-time error if you access a
- variable that wasn't declared via use vars, localized
- via my() or wasn't fully qualified. Because this is
- to avoid variable suicide problems and subtle dynamic
- scoping issues, a merely _l_o_c_a_l() variable isn't good
- enough. See the my entry in the _p_e_r_l_f_u_n_c manpage and
- the local entry in the _p_e_r_l_f_u_n_c manpage.
-
- use strict 'vars';
- $X::foo = 1; # ok, fully qualified
- my $foo = 10; # ok, my() var
- local $foo = 9; # blows up
-
- package Cinna;
- use vars qw/ $bar /; # Declares $bar in current package
- $bar = 'HgS'; # ok, global declared via pragma
-
- The _l_o_c_a_l() generated a compile-time error because you
- just touched a global name without fully qualifying
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- ssssttttrrrriiiicccctttt((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) ssssttttrrrriiiicccctttt((((3333))))
-
-
-
- it.
-
- strict subs
- This disables the poetry optimization, generating a
- compile-time error if you try to use a bareword
- identifier that's not a subroutine, unless it appears
- in curly braces or on the left hand side of the "=>"
- symbol.
-
- use strict 'subs';
- $SIG{PIPE} = Plumber; # blows up
- $SIG{PIPE} = "Plumber"; # just fine: bareword in curlies always ok
- $SIG{PIPE} = \&Plumber; # preferred form
-
-
- See the section on _P_r_a_g_m_a_t_i_c _M_o_d_u_l_e_s in the _p_e_r_l_m_o_d_l_i_b
- manpage.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-